/******************************************************************************
 * @File name   :      IActivationService.java
 *
 * @Author      :      ANMA
 *
 * @Date        :      Jul 31, 2015
 *
 * @Copyright Notice: 
 * Copyright (c) 2014 DMS, Inc. All  Rights Reserved.
 * This software is published under the terms of the DMS Software
 * License version 1.0, a copy of which has been included with this
 * distribution in the LICENSE.txt file.
 * 
 * ----------------------------------------------------------------------------
 * Date                         Who         Version         Comments
 * Jul 31, 2015 2:39:55 PM    ANMA      1.0            Initial Version
 *****************************************************************************/
package com.cap.bts.crmdp.dealer.mars.service;

import java.util.List;
import java.util.Map;

import com.cap.bts.crmdp.dealer.activation.domain.PackageRedemptionLines;
import com.cap.bts.crmdp.dealer.activation.dto.ActivationQueryDto;
import com.cap.bts.crmdp.dealer.activation.dto.ActivationResultsDto;
import com.cap.bts.crmdp.dealer.purchase.domain.MemberPackageInfo;
import com.cap.bts.crmdp.dealer.purchase.dto.MemberPackageInfoSubmitDto;
import com.cap.bts.framework.common.exception.AppException;
import com.cap.bts.framework.common.service.IBaseService;

/**
 * 
 */
public interface IMarsActivationService extends IBaseService {

    /**
     * @Date : 2015-8-3
     * @param memberPackageInfo
     * @return MemberPackageInfo
     */
    public ActivationResultsDto saveMemberActivationMars(ActivationQueryDto activationQueryDto)
        throws AppException;

    /**
     * @Date : 2015-8-3
     * @param memberPackageInfo
     * @return MemberPackageInfo
     */
    public ActivationResultsDto saveMemberPurchaseAndActivationNowMars(
        MemberPackageInfoSubmitDto dto) throws AppException;

    /**
     * 激活时插入使用明细
     * 
     * @Date : Sep 27, 2015
     * @param packageRedemptionLinesList
     * @throws AppException
     */
    public void addPackageRedemptionListInfoMars(
        List<PackageRedemptionLines> packageRedemptionLinesList, Long packageId)
        throws AppException;

    /**
     * MarsList激活
     * 
     * @Date : Sep 27, 2015
     * @param packageRedemptionLinesList
     * @throws AppException
     */
    public Map<String, Object> packageListActivationMars(MemberPackageInfoSubmitDto dto)
        throws AppException;

    /**
     * Mars激活
     * 
     * @Date : Sep 27, 2015
     * @param packageRedemptionLinesList
     * @throws AppException
     */
    public Map<String, Object> packageActivationMars(MemberPackageInfoSubmitDto dto)
        throws AppException;
    
    
    /**
     * @Date        :      2015-8-3
     * @param activationQueryDto 
     * @return MemberPackageInfo 
     */
    public MemberPackageInfo checkPackageNumberByActivationDto(ActivationQueryDto activationQueryDto) throws AppException;
}
